package com.example.design.leetcode.hash;

//剑指 Offer 50. 第一个只出现一次的字符
//    在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。 s 只包含小写字母。
//
//    示例 1:
//
//    输入：s = "abaccdeff"
//    输出：'b'
//    示例 2:
//
//    输入：s = ""
//    输出：' '
//
//    限制：
//
//    0 <= s 的长度 <= 50000

import java.util.LinkedHashMap;
import java.util.Map;

public class Practice26 {

    public static char firstUniqChar(String s) {
        char[] chars = s.toCharArray();

        Map<Character, Integer> map = new LinkedHashMap<>();
        for (char c : chars) {
            Integer count = map.get(c);
            if (count == null) {
                count = 1;
            } else {
                count ++;
            }
            map.put(c, count);
        }

        for (Character key : map.keySet()) {
            Integer count = map.get(key);
            if (count == 1) {
                return key;
            }
        }

        return ' ';
    }

    public static void main(String[] args) {
        System.out.println(firstUniqChar("leetcode"));
    }
}
